package base.design.priciple.test1SingleResponsibility;

/**
 * 这个方案符合单一职责原则，但是改动很大，要将类修改，同时还要修改我们客户端（main方法）
 * 改进方案：直接修改 SingleResponsibility1 中的Vehicle 见 SingleResponsibility3
 */
public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle v1=new RoadVehicle();
        WaterVehicle v2=new WaterVehicle();
        WaterVehicle v3=new WaterVehicle();
        v1.run("汽车");
        v2.run("飞机");
        v3.run("轮船");
    }
}

/**
 * 根据单一职责原则，把 SingleResponsibility1 中的 Vehicle 分成3 个类
 * RoadVehicle，AirVehicle，WaterVehicle  各自负责各自的 。
 *
 */
class RoadVehicle{
    public void run(String vehicle){
        System.out.println(vehicle +" 在公路上跑");
    }
}

class AirVehicle{
    public void run(String vehicle){
        System.out.println(vehicle +" 在天空飞");
    }
}

class WaterVehicle{
    public void run(String vehicle){
        System.out.println(vehicle +" 在水里跑");
    }
}
